/**
 *  
 *  Copyright (c) 2011,
 *  GaoTime
 *  All rights reserved.
 *   
 *  @file       DrawTools.h
 *  @brief      绘图工具
 *   
 *  本工具依赖Gui_Rect.h中的GUI_RECT结构
 *   
 *  @version    1.1
 *  @author     imuse
 *  @date       20110616
 *   
 *   
 *  修订说明：最初版本  
 */
#ifndef DRAW_TOOLS_H
#define DRAW_TOOLS_H

#include "Gui_Rect.h"

///画笔风格
enum PEN_STYLE{
    ///实线
	PEN_STYLE_SOLIDLINE	= 0,
    ///虚线
	PEN_STYLE_DOTLINE,
};

///水平对齐方式
enum AGIN{
    ///水平左对齐
	AGIN_LEFT = 0,
    ///水平居中
	AGIN_CENTER,
    ///水平右对齐
	AGIN_RIGHT,
};

/**填充一个矩形
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域指针
 *  @param int			nColor	颜色
 *
 *  @return -
 */
void DrawTools_FullRect(void *g, GUI_RECT *pRect, int nColor);

/**填充一个矩形,指定填充透明度
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域指针
 *  @param int			nColor	颜色
 *  @param float        a       透明度透明区间0.0~1.0,0.0为全透明，1为不透明
 *
 *  @return -
 */
void DrawTools_FullARect(void *g, GUI_RECT *pRect, int nColor, float a);

/**填充一组矩形
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域数组指针
 *  @param int			nColor	颜色
 *
 *  @return -
 */
void DrawTools_FullRectArr(void *g, GUI_RECT *pRect, int nLen, int nColor);

/**绘一个矩形框
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域指针
 *  @param int			nColor	颜色
 *  @param int			nStyle	画笔风格
 *
 *  @return -
 */
void DrawTools_DrawRect(void *g, GUI_RECT *pRect, int nColor, int penStyle);

/**绘一组矩形框
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域指针
 *  @param int			nColor	颜色
 *  @param int			nStyle	画笔风格
 *
 *  @return -
 */
void DrawTools_DrawRectArr(void *g, GUI_RECT *pRect, int nLen, int nColor, int penStyle);

/**绘一组矩形框---k线上涨时调用
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域指针
 *  @param int			nColor	区域
 *  @param int			nColor2	边框
 *  @param int			nStyle	画笔风格
 *
 *  @return -
 */
void DrawTools_DrawRectArrForKChartUp(void *g, GUI_RECT *pRect, int nLen, int nColor, int nColor2, int penStyle);

/**绘文字
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域指针
 *  @param char			*pText	字符串指针
 *  @param int			nColor	颜色
 *  @param int			nAgin	对齐方式
 *
 *  @return -
 */
void DrawTools_DrawText(void *g, GUI_RECT *pRect, char *pText, int nColor, int nAgin);

/**指定字号绘文字
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域指针
 *  @param char			*pText	字符串指针
 *  @param int			nColor	颜色
 *  @param int			nAgin	对齐方式
 *  @param float        fSize   字号
 *
 *  @return -
 */
void DrawTools_DrawFText(void *g, GUI_RECT *pRect, char *pText, int nColor, int nAgin, float fSize);

/**指定字号，指定透明度绘文字
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域指针
 *  @param char			*pText	字符串指针
 *  @param int			nColor	颜色
 *  @param int			nAgin	对齐方式
 *  @param float        fSize   字号
 *  @param float        a       透明度
 *
 *  @return -
 */
void DrawTools_DrawFAText(void *g, GUI_RECT *pRect, char *pText, int nColor, int nAgin, float fSize, float a);

/**绘NSString类型文字
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域指针
 *  @param char			*pText	字符串指针(NSString对象指针)
 *  @param int			nColor	颜色
 *  @param int			nAgin	对齐方式
 *
 *  @return -
 */
void DrawTools_DrawNSText(void *g, GUI_RECT *pRect, void *pText, int nColor, int nAgin);

/**指定字号绘NSString类型文字
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域指针
 *  @param char			*pText	字符串指针(NSString对象指针)
 *  @param int			nColor	颜色
 *  @param int			nAgin	对齐方式
 *  @param float        fSize   字号
 *
 *  @return -
 */
void DrawTools_DrawNSFText(void *g, GUI_RECT *pRect, void *pText, int nColor, int nAgin, float fSize);

/**绘一条直线
 *
 *  @param void         *g      绘图句柄指针
 *  @param int			x1      起始横坐标
 *  @param int			y1      起始纵坐标
 *  @param int			x2      结束横坐标
 *  @param int			y2      结束纵坐标
 *  @param int			nColor	颜色
 *  @param int			nStyle  画笔风格
 *
 *
 *  @return -
 */
void DrawTools_DrawLine(void *g, int x1, int y1, int x2, int y2, int nColor,int nStyle);
void DrawTools_DrawNewLine(void *g, int x1, int y1, int x2, int y2, int nColor,int nStyle, float fLineW);

/**连接一组点的路径
 *
 *  @param void         *g      绘图句柄指针
 *  @param GUI_POINT    *points 点数组指针
 *  @param int			nLen    点个数
 *  @param int			nColor	颜色
 *
 *
 *  @return -
 */
void DrawTools_DrawPath(void * g, GUI_POINT  *points, int nLen, int nColor);

/**使用渐变色填充一个形状
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_POINT    *points	点数组指针
 *  @param int          nLen	点个数
 *  @param int			y       闭合点y坐标(x坐标使用第一个点x坐标)
 *  @param int			nSColor	填充起始渐变色
 *  @param int          nEColor 填充结束渐变色
 *
 *  @return -
 */
void DrawTools_DrawBezierPath (void * g, GUI_POINT  *points, int nLen, int y, int nSColor, int nEColor);


/**指定字号绘NSString类型文字(多了省略)
 *
 *  @param void			*g		绘图句柄指针
 *  @param GUI_RECT		*pRect	区域指针
 *  @param char			*pText	字符串指针(NSString对象指针)
 *  @param int			nColor	颜色
 *  @param int			nAgin	对齐方式
 *  @param float        fSize   字号
 *
 *  @return -
 */
void DrawTools_DrawNSFTextEx(void *g, GUI_RECT *pRect, void *pText, int nColor, int nAgin, float fSize);

#endif
